home *** CD-ROM | disk | FTP | other *** search
- C BALLOP- BALLOON FUNCTION
- C
- C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- C WRITTEN BY R. M. SUPNIK
- C
- C DECLARATIONS
- C
- LOGICAL FUNCTION BALLOP(ARG)
- IMPLICIT INTEGER (A-Z)
- LOGICAL FINDXT,QEMPTY
- #include "parser.h"
- #include "gamestate.h"
- #include "state.h"
- #include "rooms.h"
- #include "rflag.h"
- #include "curxt.h"
- #include "xpars.h"
- #include "objects.h"
- #include "oflags.h"
- #include "oindex.h"
- #include "clock.h"
-
- #include "verbs.h"
- #include "flags.h"
- C BALLOP, PAGE 2
- C
- BALLOP=.TRUE.
- C !ASSUME WINS.
- IF(ARG.NE.2) GO TO 200
- C !READOUT?
- IF(PRSA.NE.LOOKW) GO TO 10
- C !ONLY PROCESS LOOK.
- IF(BINFF.NE.0) GO TO 50
- C !INFLATED?
- CALL RSPEAK(543)
- C !NO.
- GO TO 100
- 50 CALL RSPSUB(544,ODESC2(BINFF))
- C !YES.
- 100 IF(BTIEF.NE.0) CALL RSPEAK(545)
- C !HOOKED?
- RETURN
- C
- 200 IF(ARG.NE.1) GO TO 500
- C !READIN?
- IF(PRSA.NE.WALKW) GO TO 300
- C !WALK?
- IF(FINDXT(PRSO,HERE)) GO TO 250
- C !VALID EXIT?
- CALL RSPEAK(546)
- C !NO, JOKE.
- RETURN
- C
- 250 IF(BTIEF.EQ.0) GO TO 275
- C !TIED UP?
- CALL RSPEAK(547)
- C !YES, JOKE.
- RETURN
- C
- 275 IF(XTYPE.NE.XNORM) GO TO 10
- C !NORMAL EXIT?
- IF(and(RFLAG(XROOM1),RMUNG).EQ.0) BLOC=XROOM1
- 10 BALLOP=.FALSE.
- RETURN
- C
- 300 IF((PRSA.NE.TAKEW).OR.(PRSO.NE.BINFF)) GO TO 350
- CALL RSPSUB(548,ODESC2(BINFF))
- C !RECEP CONT TOO HOT.
- RETURN
- C
- 350 IF((PRSA.NE.PUTW).OR.(PRSI.NE.RECEP).OR.QEMPTY(RECEP))
- & GO TO 10
- CALL RSPEAK(549)
- RETURN
- C
- 500 IF((PRSA.NE.UNBOAW).OR.(and(RFLAG(HERE),RLAND).EQ.0))
- & GO TO 600
- IF(BINFF.NE.0) CTICK(CEVBAL)=3
- C !HE GOT OUT, START BALLOON.
- GO TO 10
- C
- 600 IF((PRSA.NE.BURNW).OR.(OCAN(PRSO).NE.RECEP)) GO TO 700
- CALL RSPSUB(550,ODESC2(PRSO))
- C !LIGHT FIRE IN RECEP.
- CTICK(CEVBRN)=OSIZE(PRSO)*20
- OFLAG1(PRSO)=or(OFLAG1(PRSO),
- & and((ONBT+FLAMBT+LITEBT), not(TAKEBT+READBT)))
- IF(BINFF.NE.0) RETURN
- IF(.NOT.BLABF) CALL NEWSTA(BLABE,0,0,BALLO,0)
- BLABF=.TRUE.
- BINFF=PRSO
- CTICK(CEVBAL)=3
- CALL RSPEAK(551)
- RETURN
- C
- 700 IF((PRSA.EQ.UNBOAW).AND.(BINFF.NE.0).AND.
- & (and(RFLAG(HERE),RLAND).NE.0))
- & CTICK(CEVBAL)=3
- GO TO 10
- C
- END
-